package prototype;

/**
 * 具体原型 （Concrete Prototype） 类将实现克隆方法。
 * 除了将原始对象的数据复制到克隆体中之外， 该方法有时还需处理克隆过程中的极端情况， 例如克隆关联对象和梳理递归依赖等等。
 */
public class Circle extends Shape {
    int radius;

    public Circle() {
        super();
        this.radius = 1;
    }

    public Circle(Circle circle) {
        super(circle);
        if (circle != null) {
            this.radius = circle.radius;
        }
    }

    @Override
    public Shape clone() {
        return new Circle(this);
    }
}